package singleton

import "sync"

var (
	instance *singleton
	once     sync.Once
)


func GetInstance() Singleton { // 创建器
	once.Do(func() {
		instance = &singleton{}
	})

	return instance
}


type Singleton interface { // 接口
	foo()
}


type singleton struct{} // 实现

func (s singleton) foo() {}
